In some conventional electronic systems, a processor may be used for processing software and/or firmware instructions. The term “software” may refer to executable code stored in memory or hardware. As the cost of processors and memory decreases, software is used more prevalently to give flexibility to operation of many products. Along with the modern personal computers, cell phones, and various electronic devices that are controlled via software, products that have been around for many decades are being redesigned and controlled via software. Some of these products may include sewing machines, cars, and exercise machines.
A software controlled sewing machine may have many more stitching patterns available than a mechanical or electrical sewing machine. Modern cars have many functions that are software controlled. For example, software processing may be involved in allotting a correct amount of gas for each cylinder at a correct time, for shifting in automatic transmissions, for anti-lock braking systems, and for detecting that seatbelts are not fastened. Exercise machines such as treadmills may have software that controls speed, degree of incline as when simulating running uphill, calculations on calories used based on distance, speed, and weight of the runner, and history of the runner's progress over a period of time.
The software, however, needs to be stored in memory where it is accessible to the processor. In some instances, the processor may have to determine the characteristics of the memory device in order to access the information, such as software, that may be stored on the memory device. For example, the processor may need to know whether access to the memory device data is serial or parallel, what timing considerations are needed in reading information from the memory device, and how large the memory device is. These characteristics are usually fixed at a design phase of a product. However, some products may be designed more flexibly so that information about the memory device may be fixed during manufacturing of the product. For example, two wide-spread methods are using jumpers and pins or printed circuit (PC) board connections to indicate the type of memory used on the board. Each pair of pins, which may or may not be shorted by a jumper, may indicate logic zero or logic one. Similarly, PC traces may be cut or left intact to indicate logic zero or logic one.
FIG. 1 is a block diagram illustrating pins and jumper circuitry that may be utilized to give flexibility to an electronic circuit. Referring to FIG. 1, there is shown four pairs of pins, 100 and 101, 102 and 103, 104 and 105, and 106 and 107, a jumper 110, a resistor pack 120 and an integrated circuit (IC) 130. Each of the pins 100, 102, 104 and 106 may be connected to ground Vss, and each of the corresponding pins 101, 103, 105, and 107 may be connected to a first terminal of its respective pull-up resistor in the resistor pack 120. The second terminals of the pull-up resistors in the resistor pack 120 may be connected to a high voltage potential Vdd of a power supply. Each of the pins 101, 103, 105 and 107 may also be connected to an input of the IC 130. The jumper 110 may be constructed so as to be able to be placed on a pair of pins, for example, the pins 100 and 101. When placed on a pair of pins, the jumper 110 may short-circuit the pins using the short-circuit bar 112.
In general, each pin that is connected to a pull-up resistor may indicate a high state, or logic one, to an IC to which it may also be connected. However, if a jumper short-circuits a pin that is pulled up to Vdd to its respective pin that is connected to the ground Vss, that pin may indicate a low state, or logic zero, to the IC to which it may be connected. In this manner, by placing jumpers appropriately on pairs of pins, a specific binary value may be communicated to the IC. The IC may then use the binary value as an input in determining what steps may need to be taken. For example, the binary value may indicate the speed at which memory must be accessed. Or, the binary value may indicate the type of memory that is available. Or, the binary value may indicate which vendor's FLASH memory is being used on the present circuit.
In operation, the pin 101 may be connected to a first pull-up resistor in the resistor pack 120 and to the input IN1 of the IC 130. The pin 103 may be connected to a second pull-up resistor in the resistor pack 120 and to the pin IN2 of the IC 130. The pin 105 may be connected to a third pull-up resistor in the resistor pack 120 and to the pin IN3 of the IC 130. The pin 107 may be connected to a fourth pull-up resistor in the resistor pack 120 and to the pin IN4 of the IC 130. A jumper 110 may be placed on the pin 101 and its corresponding pin 100. Hence, the voltage at the pin 101 and the corresponding input IN1 at the IC 130 may be at the voltage level of the ground Vss. Because the pin 101 is at the voltage level of the ground Vss, there is a voltage drop across the pull-up resistor to which the pin 101 is connected. There is, then, a current flow through that pull-up resistor that may depend on the resistance value of the pull-up resistor.
The voltages at the pins 103, 105 and 107 and the corresponding inputs IN2, IN3, and IN4 at the IC 130 may be at the high potential Vdd. If the input IN1 is the least significant bit, and the input IN4 is the most significant bit, then the binary value indicated by the pins and the jumper may be 1110. Any binary value from 0000 to 1111 may be indicated by appropriately placing or removing jumpers on the pairs of pins 100 and 101, 102 and 103, 104 and 105, and 106 and 107.
FIG. 2 is a block diagram illustrating printed circuit board traces that may be utilized to give flexibility to an electronic circuit. Referring to FIG. 2, there is shown pads 200 and 201, 202 and 203, 204 and 205, and 206 and 207. There is also shown an uncut trace 210 between the pads 200 and 201, a resistor pack 220 and an IC 230. Each of the pads 201, 203, 205 and 207 may be connected to respective first terminals of the pull-up resistors in the resistor pack 220. The second terminals of the pull-up resistors in the resistor pack 220 may be connected to the high voltage Vdd of the power supply. The pads 201, 203, 205, and 207 may also be connected to inputs IN1, IN2, IN3, and IN4, respectively, of the IC 230.
In operation, an uncut trace, for example, the trace 210, may pull the voltage of a pad, for example, the pad 201, to the voltage level of the ground Vss. A trace may be cut between two pads, for example, as cut between the pads 102 and 103, 104 and 105, and 106 and 107. The pads 103, 105 and 107 may then be pulled up to a high voltage level Vdd. Therefore, if the input IN1 is the least significant bit and the input IN4 is the most significant bit, the binary value indicated by the pads may be 1110. Any binary value from 0000 to 1111 may be indicated by appropriately cutting traces appropriately between pairs of pads. Any pair of pads that has an uncut trace between them may conduct current that may depend on the resistance of the pull-up resistor connected to one of the pair of pads.
Although either a pins and jumper method or pads and trace method may be used to allow system flexibility at or after manufacturing, since a PC trace that is cut may be hard to reconnect, the jumpers and pins approach is usually preferred. To change configurations, jumpers may simply be removed from a pair of pins, or placed on a pair of pins. The advantage of the pads and trace method is that no additional parts are required.
One or more pairs of pins may represent a plurality of binary bits, and an IC may be adapted to read the values indicated by the jumpers and pins. Each binary value may indicate a specific type of, for example, memory device. One reason for allowing a plurality of memory devices may be that various vendors may supply suitable memory devices for the product, but some devices may have slightly different characteristics than other memory devices. For example, the read cycles may have different timing characteristics, or write times may have different timing characteristics. By allowing the flexibility to use different memory devices, the product manufacturer may be able to use a wider variety of memory devices. For example, the product manufacturer may have a circuit board that is designed to accept memory devices A, B or C. Memory devices A and B may be unavailable due to back-order, and therefore the product manufacturer may be use memory device C. Another reason is that there may be a need for a larger memory device in the future as the product evolves. Accordingly, smaller memory devices, which may be cheaper than the larger devices, may be used until the need for the larger memory device presents itself.
However, there are several problems with these methods. One problem is that the number of different memory devices is limited by the initial number of jumpers or PC traces designed for the product. For example, if there are two jumpers that are allocated for the memory device identification purpose, only four different devices may now be recognized. If additional memory devices are developed that can also be used for the present product, the pins and jumper method or the pads and PC trace method may not be able to support it. In order to facilitate the use of the new memory devices, the PC board layout may be required at additional cost. There may also be the manufacturing set-up cost related to changes that may have to be made for the assembly line. Alternatively, one of the memory devices that may be supported may be replaced with the new product. But this may not be an ideal situation if the no-longer-supported memory device is still a viable part for the product.
A second problem is that for each jumper or trace on the PC board, an input pin on an IC needs to be dedicated to it. Therefore, not only is there cost because of the additional PC board space needed for the jumpers, but there is also the layout cost because of the pull-up resistor and the traces from the pins to the pull-up resistors and to the IC that reads the binary values indicated by the jumpers and the pins. Furthermore, there may be significant cost associated with each additional input pin for the IC if the pin count on the IC package needs to be increased to the next IC package size.
Another problem with the two methods is power dissipated when each method is configured to indicate a low voltage. For example, in a typical configuration, in order to have a pair of pins, or a pair of pads, indicate logic zero, the pin or pad connected to the pull-up resistor may be connected to ground. Therefore, the voltage at the input pin of the IC that reads the value of the pair of pins is low, which indicates logic zero. But, when a pull-up resistor is connected to ground, there is a current flow to ground, and this changes power requirements of the system.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.